Some database applications can generate hundreds or thousands of dynamic SQL statements for which the text and frequency of use are not known in advance. For example, order-takers in a supply chain application can use stock level queries more heavily than stock clerks adding new stock items on some days, but the reverse situation can also occur on other days. Preparing and holding hundreds or thousands of SQL statements in memory introduces problems of latency and over commitment whereby a database system may spend more time swapping unused SQL statements than running useful SQL queries. Failing to prepare SQL statements can be wasteful because it forces a database system to do many redundant computations (i.e., plan recompilations) for high usage queries. Asking SQL application developers to selectively prepare high usage queries may not be possible if the set of frequently used queries is not known in advance and can change rapidly.